package com.yiyuan.app.service;

import com.guaike.core.entity.result.Result;
import com.yiyuan.app.entity.param.AuthRealNameDTO;
import com.yiyuan.app.entity.param.BindWxDTO;
import com.yiyuan.app.entity.param.IosLoginDTO;
import com.yiyuan.app.entity.param.WxLoginDTO;
import com.yiyuan.app.entity.result.AppUserVO;
import com.yiyuan.app.entity.result.ImageVO;
import com.yiyuan.app.entity.result.LoginUserVO;
import com.yiyuan.app.entity.result.VersionVO;
import me.chanjar.weixin.common.error.WxErrorException;

import java.util.List;


public interface LoginService {
    /**
     * 微信授权登录
     * @param param
     * @return
     */
    Result<AppUserVO> wxLogin(WxLoginDTO param) throws WxErrorException;

    /**
     * ios授权登录
     * @param param
     * @return
     */
    Result<LoginUserVO> iosLogin(IosLoginDTO param);

    /**
     * 绑定手机号
     * @param param
     * @return
     */
    Result<Boolean> bindWx(BindWxDTO param) throws WxErrorException;

    /**
     * 实名认证
     * @param param
     * @return
     */
    Result<Boolean> authRealName(AuthRealNameDTO param);

    /**
     * 退出登录
     * @return
     */
    Result<Boolean> logout();

    /**
     * 启动页列表
     * @return
     */
    Result<List<ImageVO>> startPage();

    /**
     * 判断app是否需要更新
     * @return
     */
    Result<VersionVO> checkAppUpdate();
}
